module.exports = () => {
    return async (ctx,next) => {
        const { app,socket } = ctx
        const nsp = app.io.of('/')
        const id = socket.id
        const { userId } = socket.handshake.query


        // const ischeck = await app.redis.get(userId)
        // if (ischeck) {
        //     nsp.to(ischeck).emit('ERR',{ msg:true })
        //     return
        // }

        await app.redis.set(userId,id)


        socket.emit('ONLINE_USERS',{
            online_users:await app.redis.dbsize()
        })

        nsp.emit('ONLINE_USERS',{
            online_users:await app.redis.dbsize()
        })

        await next()

        await app.redis.del(userId)

        nsp.emit('ONLINE_USERS',{
            online_users:await app.redis.dbsize()
        })

    }
}
